Julia (Programmiersprache)

Julia
Official Julia logo
Basisdaten
Paradigmen: Multiparadigma (prozedural, funktional, objektorientiert, Metaprogrammierung)
Erscheinungsjahr: 2012
Designer: Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman
Entwickler: Jeff Bezanson, Stefan Karpinski, Viral B. Shah u. a.[1][2]
Typisierung: dynamisch mit Typinferenz
Wichtige Implementierungen: Julia JIT Compiler
Beeinflusst von: C, MATLAB, Scheme, Lisp, Dylan, Perl, Python, R, Ruby, Lua,[3] Mathematica
Betriebssystem: Linux, macOS, FreeBSD, Windows
Lizenz: MIT-Lizenz, GPL, LGPL, BSD
The Julia Language

Julia ist eine höhere Programmiersprache, die vor allem für numerisches und wissenschaftliches Rechnen entwickelt wurde und auch als Allzweck-Programmiersprache verwendet werden kann, bei gleichzeitiger Wahrung einer hohen Ausführungsgeschwindigkeit.[4][5][6][7][8] Die Syntax erinnert stark an Matlab, wie auch an andere technische Programmiersprachen. Der Compiler wurde in C, C++ und Scheme geschrieben; die Standardbibliothek ist in Julia selbst geschrieben. Die Programmiersprache, deren Entwicklung 2009 begann, wurde im Februar 2012 als Open Source veröffentlicht.

Die Ausführungsgeschwindigkeit liegt im Bereich von C und Fortran, wodurch sich Julia gegenüber anderen wissenschaftlichen Sprachen wie MATLAB, GNU Octave oder R deutlich absetzt. Charakterisiert wird das Design der Sprache durch ein Typsystem, das parametrisierte Typen erlaubt, eine dynamische Programmierumgebung und Multimethoden als zentrales Paradigma. Julia erlaubt paralleles und verteiltes Ausführen von Programmen und den direkten Aufruf von C- und Fortran-Bibliotheken. Julia enthält standardmäßig einen Garbage Collector[9] und effiziente Implementierungen für Operationen mit Gleitkommazahlen und zur linearen Algebra, zur Generierung von Zufallszahlen und zur Verarbeitung regulärer Ausdrücke.

Die Entwicklung erfolgte am MIT; Stefan Karpinski, Viral Shah und Jeff Bezanson erhielten dafür den J. H. Wilkinson Prize for Numerical Software für 2019.

Julia kann mithilfe eines Pakets, das alle Julia-Funktionen unterstützt, in ausführbare Binärdateien kompiliert werden. Kleine ausführbare Binärdateien können auch mit einem anderen Paket erstellt werden, aber dann ist die Julia-Laufzeit nicht in der ausführbaren Datei enthalten, z. B. herunter auf 9 KB (dann z. B. ohne den Garbage Collector, da er Teil von Julias Laufzeit ist, d. h. mit ähnlich eingeschränkten Fähigkeiten wie die C-Sprache), für Computer oder sogar Mikrocontroller mit 2 KB RAM. Standardmäßig hängt Julia-Code von der Julia-Laufzeit ab, um alle Julia-Funktionen zu unterstützen, z. Threading, aber einige (nicht idiomatische, in kleinerem oder größerem Umfang) Julia-Code können zu kleinen ausführbaren Dateien kompiliert werden (mit begrenzten Julia-Fähigkeiten). In beiden Fällen muss kein Quellcode verteilt werden.

  1. LICENSE.md. GitHub; (englisch).
  2. Contributors to JuliaLang/julia. GitHub; (englisch).
  3. Julia Documentation. Abgerufen am 14. Januar 2022 (englisch).
  4. The Julia Language. (englisch).
  5. Avi Bryant: Matlab, R, and Julia: Languages for data analysis. O’Reilly Strata, 15. Oktober 2012; (englisch).
  6. Paul Krill: New Julia language seeks to be the C for scientists. InfoWorld, 18. April 2012; (englisch).
  7. Klint Finley: Out in the Open: Man Creates One Programming Language to Rule Them All. Wired, 3. Februar 2014;. Vorlage:Cite web: Der Parameter language wurde bei wahrscheinlich fremdsprachiger Quelle nicht angegeben.
  8. dotnetpro.de: Julia schlägt Python, Matlab, Octave und R. Neue Mediengesellschaft Ulm mbH, 3. April 2012, abgerufen am 20. März 2017.
  9. Suspending Garbage Collection for Performance… good idea or bad idea? (englisch).

© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search